package src.hash;

import java.util.HashMap;

public class no454 {
    //四个数组中取四元组，相加为0

    public static void main(String[] args) {
        int[] nums1 = {1, 2};
        int[] nums2 = {-2, -1};
        int[] nums3 = {-1, 2};
        int[] nums4 = {0, 2};
        System.out.println(fourSumCount(nums1, nums2, nums3, nums4));
    }

    public static int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {

        int res = 0;
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        for (int a : nums1) {
            for (int b : nums2) {
                int sum_ab = a + b;
//                if (!map.containsKey(sum_ab)) {
//                    map.put(sum_ab, map.get(sum_ab) + 1);
//                } else {
//                    int n = map.get(sum_ab) + 1;
//                }

                map.put(sum_ab, map.getOrDefault(sum_ab, 0) + 1);
                //getOrDefault方法，参数1为map中的key，参数2为默认值。如果该key存在则返回对应的value，不存在则返回默认值
                //默认值要与map中存的value类型相同
            }
        }


        for (int c : nums3) {
            for (int d : nums4) {
                int temp = 0 - (c + d);
                res += map.getOrDefault(temp, 0);

            }
        }
        return res;
    }
}
